#!/usr/bin/env perl

# Fichier permettant d'inclure les différents modules de l'interface ainsi que de permettre à Tk de se lancer

use utf8;
use warnings;
use strict;

use gestion_bd;
use DBI;

use Tk;
use Tk::BrowseEntry;
use Tk::NoteBook;
use Tk::Canvas;
use Tk::Dialog;
use Tk::Table;
use Tk::Radiobutton;
use Tk::Text;

# Connexion à la base de données
gestion_bd::connection();

# Création de la fenêtre principale
our $window = MainWindow->new( -title => 'Gestion du Foyer', -background => 'white', );
$window->minsize (600,600);

# Définition des onglets
our $blocnote = $window->NoteBook(-backpagecolor => 'white', -inactivebackground => 'grey')->pack( qw/-fill both -expand 1 -padx 10 -pady 10 -ipady 10/);

# Onglet Livre
require "int_book.pl";

# Onglet Adhérent
require "int_subscriber.pl";

# Onglet Bureau
require "int_bureau.pl";

# Onglet Jeu
require "int_games.pl";

# Onglet Evenement
require "int_events.pl";

# Onglet Statisqtiques
require "int_stats.pl";

# Boutton pour quitter le programme
$window->Button (-text => 'Quitter', -command => sub{exit;})->pack();

MainLoop;

############################################################################################
#                                   Fonctions Générales                                    #
############################################################################################

# Fonction affichant un message dans une nouvelle fenêtre
sub dialogBox {
  my $dialog_box = $window->DialogBox(-title => $_[0], -buttons => ["OK"],-background => 'white');
   $dialog_box->Label(-text => "$_[1]", -background => 'white')->pack();
   $dialog_box->Show();
}

# Fonction affichant le message d'erreur passé en parmaètre dans une nouvelle fenêtre
sub errorBox{
  my $dialog_box = $window->DialogBox(-title => 'Erreur', -buttons    => ["OK"],-background => 'white');
  $dialog_box->Label(-text => "$_[0]", -background => 'white')->pack();
  $dialog_box->Show();
}

# Vide les champs dont la forme est similaire à l'onglet Adhérent
sub ClearSubscriber {
  my @args = @_;
  my $isInBureau= pop(@args);
  my $filiere= pop(@args);
  $$filiere='';
  $$isInBureau = 2;
  map({ $_->delete(0,'end') } @args);
}

# Vide les champs dont la forme est similaire à l'onglet Jeu
sub ClearGame {
  my @args = @_;
  my $condition= pop(@args);
  $$condition='';
  map({ $_->delete(0,'end') } @args);
}

# Vide les champs dont la forme est similaire à l'onglet Livre
sub ClearBook {
  my @args = @_;
  my $loanable = pop(@args);
  $$loanable= 2;
  map({ $_->delete(0,'end') } @args);
}
